# -*- coding: utf-8 -*-
# @Author : 左手
# @File : 05-批量爬取图片.py
# @Software: PyCharm
# @Date : 2024/10/29 21:06


"""
目标网站: https://fabiaoqing.com/biaoqing
需求: 爬取前两页的图片，保存到本地，图片命名要以网页的图片标题命名

1. 先获取第一页的图片
2. 分析url所在的数据包位置

https://fabiaoqing.com/biaoqing
请求方式： get方法

3. 先获取所有的img标签， 循环遍历
4. 依次去获取链接属性以及标题  # 懒加载

链接: data-original
标题: alt
"""

import requests
from lxml import etree

# 定义下载图片的函数
def download_url():
    url = 'https://fabiaoqing.com/biaoqing'
    # 发请求，获取响应
    res = requests.get(url)
    # 打印响应内容
    # print(res.text)
    # 解析数据
    html = etree.HTML(res.text)
    # 采用xpath解析数据  获取所有的img标签
    imag = html.xpath('//img[@class="ui image lazy"]')
    # print(len(imag))  # 确定所有的元素 已经拿到了
    for img in imag:
        # 获取图片的标题以及图片url
        img_title = img.xpath('@alt')[0]
        img_url = img.xpath('@data-original')[0]
        print(img_title, img_url)
        # 如果图片链接没问题但是没有保存图片的话 就要利用referer参数
        # 利用referer进行反爬
        head = {
            'referer':'https://fabiaoqing.com/biaoqing'
        }
        # 向图片链接发请求，得到响应
        res1 = requests.get(img_url, headers=head)
        # 保存图片
        with open(f'{img_title}.jpg', 'wb')as f:
            f.write(res1.content)
        break

download_url()


"""
https://www.030k.com/
"""